Various commercial and open-source tools exist to assist with the automation of test cases for software testing, and to generally perform testing for website user interfaces, web services, command line utilities, and common language interface (CLI) applications. Many of these automation tools generate code in a specific scripting language in order to automate execution of the test cases. Apart from the fact that this code (and the underlying test scripts) requires a specific skill set and expertise to develop, the use of scripting language also makes the modification and debugging of automation code difficult.
The automation of test cases requires developing a comprehensive approach to test all of the functional areas that the software is deployed on. This may involve test cases invoked on duplicative frameworks to fully test software applications with existing tools. For example, one test case may be required to test a functional area such as a website user interface, whereas a separate test case may be required to automate CLI test case scenarios used in connection with the website. Likewise, if a user wants to implement testing of a Java application and a web service running components of this Java application, the user will have to build separate components to consume each of the Java application and the web service. Moreover, existing test automation programs involve high costs, lengthy turn-around time, user expertise in scripting or programming languages, and high maintenance requirements that increase with the number of test cases.